package com.macro.cloud.stream;

import java.util.ArrayList;
import java.util.List;

public class TestStream {
    public static void main(String[] args) {
        List<Person> personList = new ArrayList<>();
        personList.add(new Person("欧阳雪",18,"中国",'F'));
        personList.add(new Person("Tom",24,"美国",'M'));
        personList.add(new Person("Harley",22,"英国",'F'));
        personList.add(new Person("向天笑",20,"中国",'M'));
        personList.add(new Person("李康",22,"中国",'M'));
        personList.add(new Person("小梅",20,"中国",'F'));
        personList.add(new Person("何雪",21,"中国",'F'));
        personList.add(new Person("李康",22,"中国",'M'));
        //1. 年龄大于18  filter:过滤掉不满足条件的元素.  forEach:输出元素. ---如果没有终止函数，那么中间函数的代码不会被执行。
        personList.stream().filter(item->item.getAge()>18).forEach(System.out::println);

        //2. 找出中国人  并统计个数: count()
        long count = personList.stream().filter(item -> item.getCountry().equals("中国")).count();
        System.out.println("中国人的数量为:"+count);

        //3.找出年龄最大和最小
        Person person1 = personList.stream().max((o1, o2) -> o1.getAge() - o2.getAge()).get();
        Person person2 = personList.stream().min((o1, o2) -> o1.getAge() - o2.getAge()).get();
        System.out.println("年龄最大:"+person1);
        System.out.println("年龄最小:"+person2);
    }

}
